/*
 * Miya.com Inc.
 * Copyright (c) 2004-2018 All Rights Reserved.
 */
package com.miya.erpmofa.common.lang.request.single;

import lombok.Data;
import org.apache.commons.lang.StringUtils;

import java.util.List;
import java.util.Map;

/**
 * 订单批量回写请求参数对象
 *
 * @author ${guanzhong}
 * @version $Id: OrderBatchWriteBackRequest.java, v 0.1 2017年12月27日 下午2:52 Exp $
 */
@Data
@SuppressWarnings("unused")
public class OrderWriteBackRequest extends BaseRequest {

    private static final long serialVersionUID = -8749347042666602903L;
    /**
     * 订单标识
     * {@link com.miya.erpmofa.common.lang.enums.OrderTypeEnum}
     * <b>必填</b>
     */
    private String order_sign;

    /**
     * 手机号
     * <b>最大长度 11</b>
     * <b>可选</b>
     */
    private String member_phone;

    /**
     * 订单完结时间，格式"yyyy-MM-dd HH:mm:ss"
     * <b>最大长度 19</b>
     * <b>必填</b>
     */
    private String finish_time;

    /**
     * 订单号
     * <b>最大长度 64</b>
     * <b>必填</b>
     */
    private String order_no;

    /**
     * 小票号
     * <b>最大长度 64</b>
     * <b>可选</b>
     */
    private String ticket_no;

    /**
     * 原订单号（退单时对应原始订单号）
     * <b>最大长度 64</b>
     * <b>可选</b>
     */
    private String origin_order_no;

    /**
     * 订单交易金额 (单位分)=订单初始金额-支付平台商家优惠金额-促销优惠金额
     * <b>必填</b>
     */
    private int trade_amount;

    /**
     * 订单原始金额 (单位分)
     * <b>必填</b>
     */
    private int total_original_amount;

    /**
     * 促销优惠金额（单位分）
     * <b>选填</b>
     */
    private Integer total_promote_discount;

    /**
     * 会员ID
     * <b>最大长度 64</b>
     * <b>可选</b>
     */
    private String member_id;

    /**
     * 会员姓名
     * <b>最大长度 64</b>
     * <b>可选</b>
     */
    private String member_name;

    /**
     * 运费 (单位分)
     * <b>可选</b>
     */
    private Integer fee;

    /**
     * 收银员ID,pos机付款时传入
     * <b>最大长度32</b>
     * <b>选填</b>
     */
    private String cashier_id;

    /**
     * 发货地点
     * <b>最大长度 256</b>
     * <b>可选</b>
     */
    private String send_location;

    /**
     * 促销计算标识ID
     * <b>可选</b>
     */
     private String promote_calc_id;
    /**
     * 商品明细列表
     * <b>必填</b>
     */
    private List<OrderItem> order_item_list;

    /**
     * 支付明细列表
     * <b>必填</b>
     */
    private List<PayItem> pay_list;

    @Override
    public void appendMap(final Map<String, String> baseMap) {
        if (StringUtils.isNotBlank(order_sign)) {
            baseMap.put("order_sign", order_sign);
        }
        if(StringUtils.isNotBlank(member_phone)){
            baseMap.put("member_phone", member_phone);
        }
        if(StringUtils.isNotBlank(finish_time)){
            baseMap.put("finish_time", finish_time);
        }
        if(StringUtils.isNotBlank(order_no)){
            baseMap.put("order_no", order_no);
        }
        if(StringUtils.isNotBlank(ticket_no)){
            baseMap.put("ticket_no", ticket_no);
        }
        if(StringUtils.isNotBlank(origin_order_no)){
            baseMap.put("origin_order_no", origin_order_no);
        }
        baseMap.put("trade_amount",String.valueOf(trade_amount));
    }
}
